#include "ts.h"

//把触摸屏相关的操作封装成函数
int tsfd;

//触摸屏的打开
int ts_open()
{
	//第一步；打开触摸屏的驱动
	tsfd=open("/dev/input/event0",O_RDWR);
	if(tsfd==-1)
	{
		printf("打开触摸屏失败了!\n");
		return -1;
	}
	return 0;
}


//触摸屏读取坐标保存
int ts_read_pos(int *x,int *y)
{
	//定义一个结构体存放触摸屏的坐标
	struct input_event myevent;
	//标志位(经典的编程套路)，让下面的死循环退出
	int count=0;
	while(1)
	{
		//读取触摸屏点击的坐标位置
		read(tsfd,&myevent,sizeof(myevent));
		
		//判断事件类型
		if(myevent.type==EV_ABS) //说明是触摸屏的驱动
		{
			//判断是x坐标，还是y坐标
			if(myevent.code==ABS_X) //说明读取的x坐标
			{
				printf("x坐标是: %d\n",(myevent.value)*800/1024);
				*x=(myevent.value)*800/1024;
				count++;
			}				
			if(myevent.code==ABS_Y) //说明读取的y坐标
			{
				printf("y坐标是: %d\n",(myevent.value)*480/600);
				*y=(myevent.value)*480/600;
				count++;
			}	
			if(count==2)
				break; //退出死循环
		}
	}
	return 0;
}

//触摸屏关闭
int ts_close()
{
	//关闭
	close(tsfd);
	return 0;
}
